Title
Il existe une cinquaintaine d’espèces de requins dans la
Méditerranée, et une centaine d’espèce dans l’Atlantique.
La
plupart de ces espèces sont innofensives et trop petits pour constituer
une réelle menace pour l’homme.
Cependant, certaines espèces,
dangereuses, peuvent être à l’origine de dégàts importants suite à leur
interraction avec l’homme.
Nous tentons, dans cette étude, de visualiser les pays les plus touchés par les requins, et d’identifier les natures de ces attaques.
Jeu de donnée à notre disposition: - le nombre d’attaque du requin
par pays et par année
- la nature de l’attaque (Type)
-
l’activité du victime lors de l’attaque du requin
- la conséquence
de l’attaque (‘mortel’ ou ‘non mortel’)
Year Type Country Area
2015 : 143 Unprovoked :3676 usa :1954 Length:5054
2017 : 136 Provoked : 498 australia :1005 Class :character
2016 : 130 Invalid : 421 south africa : 521 Mode :character
2011 : 128 Boating : 164 papua new guinea: 126
2014 : 127 Sea Disaster: 161 brazil : 107
2008 : 122 Boat : 130 bahamas : 99
(Other):4268 (Other) : 4 (Other) :1242
Activity Fatal..Y.N. Consequence
sport/ activity :2694 Length:5054 Autres:4236
fishing :1046 Class :character Y : 818
Diving : 474 Mode :character
: 380
boat/ship accident: 203
Air/Sea disaster : 56
(Other) : 201
---
title: "Attaques des requins"
author: "Laurence et Shaimma"
output:
flexdashboard::flex_dashboard:
navbar:
- { title: "Source", align:right, href: "https://www.kaggle.com/code/jamesssd7245/most-dangeurous-sharks-countries-worldmap-analysis"}
source_code: embed
theme: journal
orientation: columns
vertical_layout: fill
params:
setup_path: ../resources/
---
<style>
.navbar {
background-color:#46ACC8;
border-color:#46ACC8;
}
.navbar-brand {
color:black!important;
}
</style>
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(plotly)
library("sf")
library("rnaturalearth")
library("rnaturalearthdata")
library(RColorBrewer)
library("ggnewscale")
library(ggrepel)
library(wesanderson)
library(cowplot)
```
```{r, include=FALSE}
# mise en forme
requin <- read.csv("attacks.csv")
req <- requin %>%
select("Year", "Type", "Country", "Area","Activity", "Fatal..Y.N.") %>%
filter(Year >= 1930)
```
Présentation {data-icon="fas fa-mug-saucer"}
=====================================
Columns {data-width=400}
-----------------------------------------------------------------------
```{r picture, echo = F, fig.cap = "Title", out.width = '100%'}
knitr::include_graphics("pngegg-2.png")
```
Columns {data-width=700}
-----------------------------------------------------------------------
```{r,include=FALSE}
req$Country <- tolower(req$Country)
req_pie <- req
req_pie[which(req_pie$Fatal..Y.N. !="Y"),]$Fatal..Y.N. <- "Autres"
req_pie[which(req_pie$Type == "Questionable"),]$Type <- "Invalid"
# netoyage du jeu de donnée
# diving
for (i in (1:nrow(req_pie))) {
if (grepl("diving", req_pie$Activity[i]) | (grepl("Diving", req_pie$Activity[i])) |
(grepl("Dived", req_pie$Activity[i]))) {
req_pie$Activity[i] <- "Diving"
}
}
# fishing
for (i in (1:nrow(req_pie))) {
if (grepl("fishing", req_pie$Activity[i]) | (grepl("Fishing", req_pie$Activity[i])) |
(grepl("lobsters", req_pie$Activity[i])) |
grepl("fish", req_pie$Activity[i]) |
grepl("bichiques", req_pie$Activity[i]) |
grepl("Casting", req_pie$Activity[i]) |
grepl("sardines", req_pie$Activity[i]) |
grepl("Crabbing", req_pie$Activity[i]) |
grepl("Clamming", req_pie$Activity[i]) |
grepl("turtle", req_pie$Activity[i]) |
grepl("prawns", req_pie$Activity[i])|
grepl("net", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "fishing"
}
}
# air or sea disaster
for (i in (1:nrow(req_pie))) {
if (grepl("disaster", req_pie$Activity[i]) | grepl("Disaster", req_pie$Activity[i])|
(grepl("air", req_pie$Activity[i])) | (grepl("plane", req_pie$Activity[i]))
| (grepl("757", req_pie$Activity[i]))|
grepl("hurricane", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "Air/Sea disaster"
}
}
# boat/ship accident de bateau
for (i in (1:nrow(req_pie))) {
if (grepl("Boat", req_pie$Activity[i]) | (grepl("boat", req_pie$Activity[i]))
| (grepl("ship", req_pie$Activity[i])) | (grepl("Fell", req_pie$Activity[i]))
| (grepl("Vessel", req_pie$Activity[i])) |
grepl("sank", req_pie$Activity[i])|
grepl("promotional film ", req_pie$Activity[i]) |
grepl("Ferry", req_pie$Activity[i])|
grepl("ferry", req_pie$Activity[i])|
grepl("capsiz", req_pie$Activity[i]) |
grepl("MV Dona Marilyn", req_pie$Activity[i]) |
grepl("schooner Elizabeth", req_pie$Activity[i]) |
grepl("Towing", req_pie$Activity[i]) |
grepl("Tzenny Chandris", req_pie$Activity[i]) |
grepl("Wreck", req_pie$Activity[i]) |
grepl("wreck", req_pie$Activity[i]) |
grepl("dinghy", req_pie$Activity[i]) |
grepl("yacht", req_pie$Activity[i]) |
grepl("Chumming", req_pie$Activity[i]) |
grepl("raft", req_pie$Activity[i]) |
grepl("Tagging", req_pie$Activity[i]) |
grepl("overboard", req_pie$Activity[i]) |
grepl("free the shark", req_pie$Activity[i]) |
grepl("rescue a shark", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "boat/ship accident"
}
}
# sport
for (i in (1:nrow(req_pie))) {
if (grepl("surf", req_pie$Activity[i]) | grepl("Surf", req_pie$Activity[i]) |(grepl("boarding", req_pie$Activity[i]))|
grepl("Boarding", req_pie$Activity[i]) |
(grepl("batching", req_pie$Activity[i]))| (grepl("Bathing", req_pie$Activity[i])) |
(grepl("bathing", req_pie$Activity[i])) |
(grepl("Swim", req_pie$Activity[i]))| (grepl("swim", req_pie$Activity[i])) |
(grepl("fell", req_pie$Activity[i])) | (grepl("Paddling", req_pie$Activity[i]))|
(grepl("Paddling", req_pie$Activity[i])) | (grepl("water", req_pie$Activity[i]))
| (grepl("Snorkeling", req_pie$Activity[i]))
| (grepl("Sitting", req_pie$Activity[i])) |
grepl("Happy Jack", req_pie$Activity[i]) |
grepl("Bending", req_pie$Activity[i]) |
grepl("Canoe", req_pie$Activity[i]) |
grepl("paddling", req_pie$Activity[i]) |
grepl("Kaya", req_pie$Activity[i]) |
grepl("Lifesaving", req_pie$Activity[i]) |
grepl("Snorkeling", req_pie$Activity[i]) |
grepl("Stamding", req_pie$Activity[i])|
grepl("Wading", req_pie$Activity[i]) |
grepl("Wash", req_pie$Activity[i]) |
grepl("Workong", req_pie$Activity[i])|
grepl("McIver", req_pie$Activity[i]) |
grepl("Standing", req_pie$Activity[i]) |
grepl("Crossing the bay", req_pie$Activity[i])|
grepl("Walking", req_pie$Activity[i]) |
grepl("kill a shark", req_pie$Activity[i]) |
grepl("Removing shark", req_pie$Activity[i]) |
grepl("Riding", req_pie$Activity[i]) |
grepl("Board sailing", req_pie$Activity[i])|
grepl("Exercising", req_pie$Activity[i]) |
grepl("Feeding sharks", req_pie$Activity[i]) |
grepl("Filming", req_pie$Activity[i]) |
grepl("ski", req_pie$Activity[i]) |
grepl("Jumping", req_pie$Activity[i]) |
grepl("Paddle", req_pie$Activity[i]) |
grepl("Play", req_pie$Activity[i]) |
grepl("Resting", req_pie$Activity[i]) |
grepl("floatation device", req_pie$Activity[i])|
grepl("Sculling", req_pie$Activity[i]) |
grepl("Splashing", req_pie$Activity[i]) |
grepl("Dr. Marais", req_pie$Activity[i]) |
grepl("Wrangling", req_pie$Activity[i]) |
grepl("Photographing", req_pie$Activity[i]) |
grepl("SUP", req_pie$Activity[i]) |
grepl("Kakay", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "sport/ activity" }
}
# adrift
for (i in (1:nrow(req_pie))) {
if (grepl("Adrift", req_pie$Activity[i]) | grepl("adrift", req_pie$Activity[i]) |
grepl("Floating", req_pie$Activity[i])|
grepl("3 men & 2 boys", req_pie$Activity[i]) |
grepl("float", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "Adrift"
}
}
# murder / war
for (i in (1:nrow(req_pie))) {
if (grepl("Murder", req_pie$Activity[i]) ||
grepl("submarine", req_pie$Activity[i]) |
grepl("American", req_pie$Activity[i]) |
grepl("torpedoed", req_pie$Activity[i]) |
grepl("Torpedoed", req_pie$Activity[i]) |
grepl("soldiers", req_pie$Activity[i]) |
grepl("Escaping", req_pie$Activity[i]) |
grepl("Japanese", req_pie$Activity[i]) |
grepl("Japan", req_pie$Activity[i]) |
grepl("Sinking", req_pie$Activity[i]) |
grepl("SS", req_pie$Activity[i]) |
grepl("foundered", req_pie$Activity[i]) |
grepl("US", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "murder / war "
}
}
```
```{r}
req_pres <- req_pie %>%
mutate("Year" = as.factor(Year), "Country" = as.factor(Country),
"Type" = as.factor(Type), "Activity" = as.factor(Activity),
"Consequence"= as.factor(Fatal..Y.N.))
```
<h4 style="color : Dark Blue;">
Il existe une cinquaintaine d'espèces de requins dans la Méditerranée, et une centaine d'espèce dans l'Atlantique. <br>
La plupart de ces espèces sont innofensives et trop petits pour constituer une réelle menace pour l'homme. <br> <br>
Cependant, certaines espèces, dangereuses, peuvent être à l'origine de dégàts importants suite à leur interraction avec l'homme. <br>
Nous tentons, dans cette étude, de visualiser les pays les plus touchés par les requins, et d'identifier les natures de ces attaques.
Jeu de donnée à notre disposition:
- le nombre d’attaque du requin par pays et par année <br>
- la nature de l'attaque (Type) <br>
- l’activité du victime lors de l’attaque du requin <br>
- la conséquence de l’attaque ('mortel' ou 'non mortel')
</h4>
```{r}
summary(req_pres)
```
Vision Globale {data-icon="fas fa-map"}
=====================================
Columns {data-width=600}
-----------------------------------------------------------------------
### Carte mondiale: Nombre totale d'attaques par les requins entre 1930 et 2018
```{r, include=FALSE}
########################################################
# get right dataset for world map construction
########################################################
#===================================
## read files
#===================================
requin <- read.csv("attacks.csv")
req <- requin %>%
select("Year", "Type", "Country", "Area","Activity", "Fatal..Y.N.") %>%
filter(Year >= 1930)
# select columns necessary for the construction of the world map
req_map <- req %>%
group_by(Country) %>%
summarize(nb_attaque = n())
# read base map
world <- ne_countries(scale = "medium", returnclass = "sf")
world <- world %>% select(admin, geometry) # for countries
fond <- st_read(dsn = "world-administrative-boundaries/world-administrative-boundaries.shp",
stringsAsFactors = F) # for regions
#===================================
## modify element
#===================================
# change countries names and site to lower
req_map$Country <- tolower(req_map$Country)
world$admin <- tolower(world$admin)
fond$name <- tolower(fond$name)
# standardise site name
req_map[req_map$Country == "columbia" ,]$Country <- "colombia"
req_map[req_map$Country == "curacao" ,]$Country <- "curaçao"
req_map[req_map$Country == "egypt / israel" ,]$Country <- "egypt" # israel
req_map[req_map$Country == "grand cayman",]$Country <- "cayman islands"
req_map[req_map$Country == "iran / iraq",]$Country <- "iran" # "iraq"
req_map[req_map$Country == "italy / croatia" ,]$Country <- "iran" # "italy"
req_map[req_map$Country == "maldive islands" ,]$Country <- "maldives"
req_map[req_map$Country == "micronesia" ,]$Country <- "federated states of micronesia"
req_map[req_map$Country == "nicaragua " ,]$Country <- "nicaragua"
req_map[req_map$Country == "palestinian territories" ,]$Country <- "palestine"
req_map[req_map$Country == "solomon islands / vanuatu" ,]$Country <- "solomon islands" # et vanatu
req_map[req_map$Country == "tanzania" ,]$Country <- "united republic of tanzania"
req_map[req_map$Country == "sudan?" ,]$Country <- "sudan"
req_map[req_map$Country == "trinidad & tobago" ,]$Country <- "trinidad and tobago"
req_map[req_map$Country == "turks & caicos" ,]$Country <- "turks and caicos island"
req_map[req_map$Country == "united arab emirates (uae)" ,]$Country <- "united arab emirates"
req_map[req_map$Country == "usa" ,]$Country <- "united states of america"
req_map[req_map$Country == "western samoa" ,]$Country <- "samoa"
# get site present in csv "world"
a <- req_map$Country
b <- world$admin
present_in_world <- a[which(a %in% b == T)]
# get site present in csv "fond"
a <- as.vector(factor(req_map$Country))
bbis <- as.vector(factor(fond$name))
present_in_fond <- a[which(a %in% bbis == T)]
# site present in both
present <- union(present_in_world , present_in_fond )
dif <- setdiff(present_in_world ,present_in_fond) # site present in fond and not in world
#===================================
## get the right dataset for countries and regiop
#===================================
# find geometry necessary for some site in the base fond
geometry_fond <- fond %>%
filter(fond$name %in% dif) %>%
select("admin"= name, "geometry")
geom_init <- rbind(world, geometry_fond)
# for every site, calculate totale attacks
attack_by_site <- req_map %>%
group_by(Country) %>%
summarise(nb_att_tot = sum(nb_attaque)) %>%
select("admin"= Country, "attacks"= nb_att_tot)
# get dataset with geometry and total attacks of every site
geom <- merge(geom_init , attack_by_site, by="admin", all.x=T)
########################################################
## make dataset for oceans and seas
########################################################
# standardisation
req_map[req_map$Country == "north atlantic ocean " ,]$Country <-"north atlantic ocean"
req_map[req_map$Country == "pacific ocean " ,]$Country <-"pacific ocean"
req_map[req_map$Country == "red sea / indian ocean" ,]$Country <-"indian ocean"
req_map[req_map$Country == "central pacific" ,]$Country <-"pacific ocean"
req_map[req_map$Country == "southwest pacific ocean" ,]$Country <-"south pacific ocean"
req_map[req_map$Country == "pacific ocean" ,]$Country <-"mid-pacific ocean"
# locate ocean/sea/gulf site present in attacks.csv
oce_mer <- c("caribbean sea" , "gulf of aden", "indian ocean",
"mid atlantic ocean" ,"mid-pacifc ocean",
"north atlantic ocean","north pacific ocean","north sea",
"northern arabian sea", "mid-pacific ocean",
"persian gulf", "red sea", "south atlantic ocean", "south china sea",
"south pacific ocean" )
#=========================================================================================
## get element necessary for every site: latitude, longitude, nb tot of attacks
#=========================================================================================
lat <- c(14.939588401460744, 12.579150350346652, -31.65256869194269,
0.0012874607478224015, 0.5168641856999522,
37.55840704949698,26.740062627514437, 56.89226369685983,
13.52913765091261, 6.647930428748582,
27.39827299362649, 21.182319274300287, -32.004663545742, 17.010418251252442,
-34.74671641096358)
long <- c(-74.7792643588162, 47.96353180808757,81.67236879838734,
-19.9999143509654, -150.4849986612673,
-39.08714830907774, -169.80601017384916, 3.676283675031177,
64.31588270602367, -163.13809314592606,
51.41987343745529, 38.424038461264196, -15.840314716043286, 113.41267801349872,
-139.57163512902778)
attacks_oce_mer <- req_map %>%
filter(Country %in% oce_mer) %>%
group_by(Country) %>%
summarise(nb_att_tot = sum(nb_attaque)) %>%
select("oce_mer"= Country, "attacks"= nb_att_tot)
#========================================
# make dataframe
#========================================
omg_init <- data.frame(oce_mer, lat, long)
omg <- merge(omg_init, attacks_oce_mer, by="oce_mer")
geom_test <- data.frame("admin"= c(geom$admin, omg$oce_mer),
"lat" = c(rep(NA, 241), omg$lat),
"long" = c(rep(NA, 241), omg$long),
"attacks" = c(geom$attacks, omg$attacks))
########################################################
## still have some site without geometry or localisation
########################################################
all.countries <- req_map$Country
all.countries[which( ( all.countries %in% oce_mer| all.countries%in% present )== F)]
########################################################
## world map
########################################################
map <- geom %>%
ggplot() +
geom_sf(aes(fill = attacks)) +
scale_fill_distiller(palette = "YlGnBu", trans= "log", direction = 1,
name="Nombre d'attaque",
labels = function(x) sprintf("%.f", x),
breaks = c(1, 7, 55, 403, 1954),
na.value="#edeef2")
# by default, scale_fill_distiller direction is 1
# ==================
# Formatted map
# =================
map2 <- map +
theme_void() +
ggtitle("Nombre totale d'attaques par les requins entre 1930 et 2018") +
#guides(fill = guide_legend(reverse = T))+
theme(text = element_text(family = 'Gill Sans') # mettre le texte en blanc et type de texte
,plot.title = element_text(size = 11)
,panel.background = element_rect(fill = '#b3e2f5') # ajouter couleur du fond de carte
#,plot.background = element_rect(fill = '#333333') # ajouter couleur de fond
,legend.position="bottom")
# ============================
# add oceans /sea/ gulf point
# ===========================
map3 <- map2 +
new_scale_color() +
geom_point(data = geom_test,
aes(x=long, y=lat, col = attacks, fill=attacks),
colour = "black", pch=21, size=2, show.legend = T) +
# geom_text_repel(data = geom_test, aes(x=long, y=lat, label=admin),
# point.padding = 0.5,
# segment.color = 'white',
# colour = "#394b85",
# size=3)+
scale_color_distiller(palette = "YlOrRd", trans= "log", direction = 1 )
```
```{r}
map3
```
Columns {data-width=400}
-----------------------------------------------------------------------
```{r, include=FALSE}
# evolution temporelle
requin <- read.csv("attacks.csv")
req <- requin %>%
select("Date","Year", "Type", "Country", "Area","Activity", "Fatal..Y.N.") %>%
filter(Year >= 1930)
req3<- req[req$Country %in% c("USA","AUSTRALIA", "SOUTH AFRICA"),]
#nbr des attaques par annee
val <- req3 %>% count(Year,Type, sort = TRUE)
#Types of attacks
val[val=="Boating"]<-NA
val <- val %>%
mutate_at(c('Type'), ~replace_na(.,"Boat"))
#
val[val==""]<-NA
val <- val %>%
mutate_at(c('Type'), ~replace_na(.,"Boat"))
#graph
nbatq <- ggplot(val, aes(Year,n), alpha= Country ) + geom_line(aes( color=Type))+ggtitle("Evolution des attaques des requins pour les 3 premiers Pays") +ylab("Nb Attaques") + xlab("Année")+theme(plot.title = element_text(face="bold",color = "#607c8e", size = 15, hjust=0.5,vjust=1, family = "Serif"),
legend.position = c(0.2, 0.8),
axis.title.x = element_text( face = "bold",size=10),
axis.title.y = element_text(face = "bold",size=10),
panel.background = element_rect(fill = "white"),
panel.grid.major = element_blank()
) +scale_y_continuous(breaks = seq(0, 88, by = 10)) + scale_colour_manual(values=c("#DAF7A6", "#E5E4E2", "#FFA500","#C70039", "#E97451", "#6495ED"))
```
```{r, include=FALSE}
typ2 <- req3 %>% group_by(Country) %>% count(Year,Type, sort = TRUE)
#
typ2[typ2=="Boating"]<-NA
typ2 <- typ2 %>%
mutate_at(c('Type'), ~replace_na(.,"Boat"))
#
typ2[typ2==""]<-NA
typ2 <- typ2 %>%
mutate_at(c('Type'), ~replace_na(.,"Boat"))
g <- ggplot(typ2, aes(x=Type, y=n, fill=Country)) +geom_boxplot(outlier.shape=NA)+
scale_fill_manual(values=c("darkgoldenrod1","darkred", "#002868")) + ylab("Nb Attaques")+
theme(axis.text.x = element_text(angle = 90, hjust = 1), panel.background = element_rect(fill = "white"),
panel.grid.major = element_line(colour = "#bababa"))+ scale_y_continuous(breaks = seq(0, 88, by = 10)) +ggtitle(" Distribution Types d'attaques par Pays")
```
### Focus sur les 3 pays les plus touchés
```{r}
g
```
### Évolution temporelle
```{r}
ggplotly(nbatq)
```
La nature des attaques {data-icon="fas fa-fish"}
=====================================
```{r,include=FALSE}
req$Country <- tolower(req$Country)
req_pie <- req %>%
filter(Country %in% c("usa", "australia", "south africa"))
req_pie[which(req_pie$Fatal..Y.N. !="Y"),]$Fatal..Y.N. <- "Autres"
req_pie[which(req_pie$Type == "Questionable"),]$Type <- "Invalid"
# netoyage du jeu de donnée
# diving
for (i in (1:nrow(req_pie))) {
if (grepl("diving", req_pie$Activity[i]) | (grepl("Diving", req_pie$Activity[i])) |
(grepl("Dived", req_pie$Activity[i]))) {
req_pie$Activity[i] <- "Diving"
}
}
# fishing
for (i in (1:nrow(req_pie))) {
if (grepl("fishing", req_pie$Activity[i]) | (grepl("Fishing", req_pie$Activity[i])) |
(grepl("lobsters", req_pie$Activity[i])) |
grepl("fish", req_pie$Activity[i]) |
grepl("bichiques", req_pie$Activity[i]) |
grepl("Casting", req_pie$Activity[i]) |
grepl("sardines", req_pie$Activity[i]) |
grepl("Crabbing", req_pie$Activity[i]) |
grepl("Clamming", req_pie$Activity[i]) |
grepl("turtle", req_pie$Activity[i]) |
grepl("prawns", req_pie$Activity[i])|
grepl("net", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "fishing"
}
}
# air or sea disaster
for (i in (1:nrow(req_pie))) {
if (grepl("disaster", req_pie$Activity[i]) | grepl("Disaster", req_pie$Activity[i])|
(grepl("air", req_pie$Activity[i])) | (grepl("plane", req_pie$Activity[i]))
| (grepl("757", req_pie$Activity[i]))|
grepl("hurricane", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "Air/Sea disaster"
}
}
# boat/ship accident de bateau
for (i in (1:nrow(req_pie))) {
if (grepl("Boat", req_pie$Activity[i]) | (grepl("boat", req_pie$Activity[i]))
| (grepl("ship", req_pie$Activity[i])) | (grepl("Fell", req_pie$Activity[i]))
| (grepl("Vessel", req_pie$Activity[i])) |
grepl("sank", req_pie$Activity[i])|
grepl("promotional film ", req_pie$Activity[i]) |
grepl("Ferry", req_pie$Activity[i])|
grepl("ferry", req_pie$Activity[i])|
grepl("capsiz", req_pie$Activity[i]) |
grepl("MV Dona Marilyn", req_pie$Activity[i]) |
grepl("schooner Elizabeth", req_pie$Activity[i]) |
grepl("Towing", req_pie$Activity[i]) |
grepl("Tzenny Chandris", req_pie$Activity[i]) |
grepl("Wreck", req_pie$Activity[i]) |
grepl("wreck", req_pie$Activity[i]) |
grepl("dinghy", req_pie$Activity[i]) |
grepl("yacht", req_pie$Activity[i]) |
grepl("Chumming", req_pie$Activity[i]) |
grepl("raft", req_pie$Activity[i]) |
grepl("Tagging", req_pie$Activity[i]) |
grepl("overboard", req_pie$Activity[i]) |
grepl("free the shark", req_pie$Activity[i]) |
grepl("rescue a shark", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "boat/ship accident"
}
}
# sport
for (i in (1:nrow(req_pie))) {
if (grepl("surf", req_pie$Activity[i]) | grepl("Surf", req_pie$Activity[i]) |(grepl("boarding", req_pie$Activity[i]))|
grepl("Boarding", req_pie$Activity[i]) |
(grepl("batching", req_pie$Activity[i]))| (grepl("Bathing", req_pie$Activity[i])) |
(grepl("bathing", req_pie$Activity[i])) |
(grepl("Swim", req_pie$Activity[i]))| (grepl("swim", req_pie$Activity[i])) |
(grepl("fell", req_pie$Activity[i])) | (grepl("Paddling", req_pie$Activity[i]))|
(grepl("Paddling", req_pie$Activity[i])) | (grepl("water", req_pie$Activity[i]))
| (grepl("Snorkeling", req_pie$Activity[i]))
| (grepl("Sitting", req_pie$Activity[i])) |
grepl("Happy Jack", req_pie$Activity[i]) |
grepl("Bending", req_pie$Activity[i]) |
grepl("Canoe", req_pie$Activity[i]) |
grepl("paddling", req_pie$Activity[i]) |
grepl("Kaya", req_pie$Activity[i]) |
grepl("Lifesaving", req_pie$Activity[i]) |
grepl("Snorkeling", req_pie$Activity[i]) |
grepl("Stamding", req_pie$Activity[i])|
grepl("Wading", req_pie$Activity[i]) |
grepl("Wash", req_pie$Activity[i]) |
grepl("Workong", req_pie$Activity[i])|
grepl("McIver", req_pie$Activity[i]) |
grepl("Standing", req_pie$Activity[i]) |
grepl("Crossing the bay", req_pie$Activity[i])|
grepl("Walking", req_pie$Activity[i]) |
grepl("kill a shark", req_pie$Activity[i]) |
grepl("Removing shark", req_pie$Activity[i]) |
grepl("Riding", req_pie$Activity[i]) |
grepl("Board sailing", req_pie$Activity[i])|
grepl("Exercising", req_pie$Activity[i]) |
grepl("Feeding sharks", req_pie$Activity[i]) |
grepl("Filming", req_pie$Activity[i]) |
grepl("ski", req_pie$Activity[i]) |
grepl("Jumping", req_pie$Activity[i]) |
grepl("Paddle", req_pie$Activity[i]) |
grepl("Play", req_pie$Activity[i]) |
grepl("Resting", req_pie$Activity[i]) |
grepl("floatation device", req_pie$Activity[i])|
grepl("Sculling", req_pie$Activity[i]) |
grepl("Splashing", req_pie$Activity[i]) |
grepl("Dr. Marais", req_pie$Activity[i]) |
grepl("Wrangling", req_pie$Activity[i]) |
grepl("Photographing", req_pie$Activity[i]) |
grepl("SUP", req_pie$Activity[i]) |
grepl("Kakay", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "sport/ activity" }
}
# adrift
for (i in (1:nrow(req_pie))) {
if (grepl("Adrift", req_pie$Activity[i]) | grepl("adrift", req_pie$Activity[i]) |
grepl("Floating", req_pie$Activity[i])|
grepl("3 men & 2 boys", req_pie$Activity[i]) |
grepl("float", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "Adrift"
}
}
# murder / war
for (i in (1:nrow(req_pie))) {
if (grepl("Murder", req_pie$Activity[i]) ||
grepl("submarine", req_pie$Activity[i]) |
grepl("American", req_pie$Activity[i]) |
grepl("torpedoed", req_pie$Activity[i]) |
grepl("Torpedoed", req_pie$Activity[i]) |
grepl("soldiers", req_pie$Activity[i]) |
grepl("Escaping", req_pie$Activity[i]) |
grepl("Japanese", req_pie$Activity[i]) |
grepl("Japan", req_pie$Activity[i]) |
grepl("Sinking", req_pie$Activity[i]) |
grepl("SS", req_pie$Activity[i]) |
grepl("foundered", req_pie$Activity[i]) |
grepl("US", req_pie$Activity[i])
) {
req_pie$Activity[i] <- "murder / war "
}
}
```
```{r, include=FALSE}
# on se concentre sur les 3 pays les plus touchés
#pie1
req_pie1 <- req_pie %>%
group_by(Type) %>%
summarise(Effectif=n(), Pourcentage = Effectif/3480,
ypos = (cumsum(Pourcentage) - 0.5*Pourcentage))
req_pie1 <- req_pie1[-1,]
req_pie1$Type
df1 <- req_pie1 %>%
mutate(csum = rev(cumsum(rev(Pourcentage))),
pos = Pourcentage/2 + lead(csum, 1),
pos = if_else(is.na(pos), Pourcentage/2, pos))
# pie 1 Répartion des Types d'attaques
pie <- ggplot(data = req_pie1, aes(x="", y=Pourcentage, fill= Type)) +
geom_bar(stat="identity", width=1, color= "white") +
coord_polar("y", start=0) +
theme_void() +
scale_fill_manual(values = c("Boat" = "#DAF7A6",
"Invalid" = "#E5E4E2",
"Provoked" = "#FFA500",
"Sea Disaster" = "#E97451",
"Unprovoked" = "#6495ED")[]) +
geom_label_repel(data = df1,
aes(y = pos, label = paste0(round(Pourcentage*100,1), "%")),
size = 2, nudge_x = 1, show.legend = FALSE) +
guides(fill = guide_legend(title = "Type")) +
labs(title = "Répartition des Types d'attaques") +
theme(plot.title = element_text(size=9),
legend.text = element_text(size = 5))
# geom_text(aes(label = Type),
# position = position_stack(vjust = 0.5), color="white")
pie
```
```{r, include=FALSE}
req_pie3 <- req_pie %>%
filter(Type =="Unprovoked", Activity!="") %>%
group_by(Fatal..Y.N.) %>%
summarise(Effectif=n(), Pourcentage = Effectif/2444,
ypos = (cumsum(Pourcentage) - 0.5*Pourcentage))
req_pie3$Fatal..Y.N.[which(req_pie3$Fatal..Y.N. =="Y")] <- "Mortel"
req_pie3$Fatal..Y.N.[which(req_pie3$Fatal..Y.N. =="Autres")] <- "Non Mortel"
df3 <- req_pie3 %>%
mutate(csum = rev(cumsum(rev(Pourcentage))),
pos = Pourcentage/2 + lead(csum, 1),
pos = if_else(is.na(pos), Pourcentage/2, pos))
df3$pos[2] <- 0.95
pie3 <- ggplot(data = req_pie3, aes(x="", y=Pourcentage, fill= Fatal..Y.N.)) +
geom_bar(stat="identity", width=1, color= "white") +
coord_polar("y", start=0) +
theme_void() +
scale_fill_manual(values = c("Mortel" = "#FC4E00",
"Non Mortel" = "#D4D3DC")) +
geom_label_repel(data = df3,
aes(y = pos, label = paste0(round(Pourcentage*100,1), "%")),
size = 2, nudge_x = 1, show.legend = FALSE) +
guides(fill = guide_legend(title = "Type")) +
labs(title = "Intensité de dégâts des attaques 'unprovoked'") +
theme(plot.title = element_text(size=9),
legend.text = element_text(size = 5))
```
```{r, include=FALSE}
pie
```
```{r, include=F}
req_pie2 <- req_pie %>%
filter(Type =="Unprovoked", Activity!="") %>%
group_by(Activity) %>%
summarise(Effectif=n(), Pourcentage = Effectif/2448)
df2 <- req_pie2 %>%
mutate(csum = rev(cumsum(rev(Pourcentage))),
pos = Pourcentage/2 + lead(csum, 1),
pos = if_else(is.na(pos), Pourcentage/2, pos))
req_pie2$Activity
pie2 <- ggplot(data = req_pie2, aes(x="", y=Pourcentage, fill= Activity)) +
geom_bar(stat="identity", width=1, color= "white") +
coord_polar("y", start=0) +
theme_void() +
scale_fill_manual(values = c("Adrift" = "#B6D8F2",
"Air/Sea disaster" = "#5784BA",
"boat/ship accident" = "#7C4C53",
"Diving" = "#00A0B0",
"fishing" = "#2a9d8f",
"murder / war " = "#BD3100",
"sport/ activity" = "#F5CB5C")) +
geom_label_repel(data = df2,
aes(y = pos, label = paste0(round(Pourcentage*100,1), "%")),
size = 2, nudge_x = 1, show.legend = FALSE) +
guides(fill = guide_legend(title = "Activity")) +
labs(title = "Activités des victimes lors de l'attaque") +
theme(plot.title = element_text(size=9),
legend.text = element_text(size = 5))
```
```{r}
plot_grid(pie, pie3,"",pie2, ncol = 2, nrow = 2)
```